Virtual desktops provided as part of a virtual desktop infrastructure (VDI) or desktop-as-a-service (DAAS) offerings are becoming more commonplace in today's enterprise work environments. The security of having a remotely stored desktop, ability to access the desktop from any location and on any device, centralized desktop management, efficient use of hardware resources, as well as numerous other benefits made possible by VDI/DAAS are a large benefit for many organizations.
In a conventional VDI or DAAS environment, each user in an enterprise is provisioned a virtual desktop and is allowed to access his or her virtual desktop over a remote network connection, such as a WAN connection. The virtual desktops are typically hosted on servers that reside in a data center of the enterprise (or a third-party service provider), and each host server may execute multiple virtual desktops. Users can utilize a client device to remotely log into their individual virtual desktop and all of the application execution takes place on the remote host server which is linked to the local client device over a network using a remote display protocol, such as remote desktop protocol (RDP), PC-over-IP protocol (PCoIP), VMware Blast, virtual network computing (VNC) protocol, or the like. Using the remote desktop protocol, the user can interact with applications of the virtual desktop, which are running on the remote host server, with only the display, keyboard, and mouse information communicated with the local client device. A common implementation of this approach is to host multiple desktop operating system instances on separate virtual machines deployed on a server hardware platform running a hypervisor.
While desktop virtualization offers numerous advantages, providing users of virtual desktops with an experience that is equivalent to using a locally executing desktop poses numerous challenges. For example, when a user plays a video on the Web inside the virtual desktop, such as an HTML5 video embedded in a webpage, the video playback may be of poor quality, it may lack audio/video synchronization, and suffer a low frame rate. The interrupted playback performance is due to the rendering of the video in the virtual desktop and the remoting protocol capturing the screen images at a very high rate and sending them to the client device, causing heavy use of processing power and network bandwidth. More specifically, every time the screen buffer on the virtual desktop changes, the changed pixel data is transported to the client device. In the case of a high refresh rate video, this entails rapid transfer of significant volumes of data, consuming substantial CPU and network bandwidth resources. Oftentimes, the result is poor image quality, lack of audio/video synchronization, interrupted playback, and low framerate.
A more efficient approach is desirable for playing embedded video on the Web inside the virtual desktop.